{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.983333333333\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10c2d64e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Import necessary modules\n",
    "\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn import datasets\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Load the digits dataset: digits\n",
    "digits = datasets.load_digits()\n",
    "\n",
    "# Create feature and target arrays\n",
    "X = digits.data\n",
    "y = digits.target\n",
    "\n",
    "# Split into training and test set\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=42, stratify=y)\n",
    "\n",
    "# Create a k-NN classifier with 7 neighbors: knn\n",
    "knn = KNeighborsClassifier(n_neighbors=7)\n",
    "\n",
    "# Fit the classifier to the training data\n",
    "knn.fit(X_train, y_train)\n",
    "y_pred = knn.predict(X_test)\n",
    "# Print the accuracy\n",
    "print(knn.score(X_test, y_test))\n",
    "\n",
    "\n",
    "# Setup arrays to store train and test accuracies\n",
    "neighbors = np.arange(1, 9)\n",
    "train_accuracy = np.empty(len(neighbors))\n",
    "test_accuracy = np.empty(len(neighbors))\n",
    "\n",
    "# Loop over different values of k\n",
    "for i, k in enumerate(neighbors):\n",
    "    # Setup a k-NN Classifier with k neighbors: knn\n",
    "    knn = KNeighborsClassifier(n_neighbors=k)\n",
    "\n",
    "    # Fit the classifier to the training data\n",
    "    knn.fit(X_train, y_train)\n",
    "    y_pred = knn.predict(X_test)\n",
    "    \n",
    "    #Compute accuracy on the training set\n",
    "    train_accuracy[i] = knn.score(X_train, y_train)\n",
    "\n",
    "    #Compute accuracy on the testing set\n",
    "    test_accuracy[i] = knn.score(X_test, y_test)\n",
    "\n",
    "# Generate plot\n",
    "plt.title('k-NN: Varying Number of Neighbors')\n",
    "plt.plot(neighbors, test_accuracy, label = 'Testing Accuracy')\n",
    "plt.plot(neighbors, train_accuracy, label = 'Training Accuracy')\n",
    "plt.legend()\n",
    "plt.xlabel('Number of Neighbors')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
